Skip to content

Add new "Mille" package to externals, update Millepede-II and GBL #10310

Merged
cmsbuild merged 8 commits intocms-sw:IB/CMSSW_16_1_X/masterfrom
goblirsc:MG_separateMille
Feb 5, 2026
Merged

Add new "Mille" package to externals, update Millepede-II and GBL #10310
cmsbuild merged 8 commits intocms-sw:IB/CMSSW_16_1_X/masterfrom
goblirsc:MG_separateMille

Conversation

@goblirsc
Copy link
Contributor

@goblirsc goblirsc commented Jan 28, 2026

This PR updates the tracker alignment packages Millepede-II and GBL to use a new, common implementation of the "Mille" library responsible for writing and reading the alignment fit inputs to/from disk. The common Mille package is added as a new external package, and dependencies on it introduced to the Millepede-II and GBL spec files.

See slides for details on the new package.

Changes require updates to CMSSW, as some API calls change. These are in PR #49963.

Together, the changes pass the unit and runTheMatrix tests (few exceptions related to DAS / missing inputs, unrelated to PR).
In addition, changes were validated by running a full tracker alignment with the modified externals & CMSSW on lxplus8.

@cmsbuild
Copy link
Contributor

cmsbuild commented Jan 28, 2026

cms-bot internal usage

@cmsbuild
Copy link
Contributor

A new Pull Request was created by @goblirsc for branch IB/CMSSW_16_1_X/master.

@akritkbehera, @cmsbuild, @iarspider, @raoatifshad, @smuzaffar can you please review it and eventually sign? Thanks.
@ftenchini, @mandrenguyen, @sextonkennedy you are the release manager for this.
cms-bot commands are listed here

@smuzaffar
Copy link
Contributor

please test with cms-sw/cmssw#49963

@cmsbuild
Copy link
Contributor

+1

Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b8b998/50978/summary.html
COMMIT: b7da2cc
CMSSW: CMSSW_16_1_X_2026-01-28-1100/el8_amd64_gcc13
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmsdist/10310/50978/install.sh to create a dev area with all the needed externals and cmssw changes.

The following merge commits were also included on top of IB + this PR after doing git cms-merge-topic:

You can see more details here:
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b8b998/50978/git-recent-commits.json
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b8b998/50978/git-merge-result

Comparison Summary

Summary:

  • You potentially added 8 lines to the logs
  • ROOTFileChecks: Some differences in event products or their sizes found
  • Reco comparison results: 3422 differences found in the comparisons
  • DQMHistoTests: Total files compared: 52
  • DQMHistoTests: Total histograms compared: 4028546
  • DQMHistoTests: Total failures: 82621
  • DQMHistoTests: Total nulls: 14
  • DQMHistoTests: Total successes: 3945891
  • DQMHistoTests: Total skipped: 20
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 12.305 KiB( 51 files compared)
  • DQMHistoSizes: changed ( 18634.0 ): 12.305 KiB SiStrip/MechanicalView
  • Checked 222 log files, 193 edm output root files, 52 DQM output files
  • TriggerResults: found differences in 1 / 50 workflows

Max Memory Comparisons exceeding threshold

@cms-sw/core-l2 , I found 2 workflow step(s) with memory usage exceeding the error threshold:

Expand to see workflows ...
  • Error: Workflow 18634.0_TTbar_14TeV+2026PU step2 max memory diff 574.7 exceeds +/- 90.0 MiB
  • Error: Workflow 18634.0_TTbar_14TeV+2026PU step3 max memory diff 822.4 exceeds +/- 90.0 MiB


%prep
%setup -q -n %{n}-%{realversion}
grep -q 'CMAKE_CXX_STANDARD *11' cpp/CMakeLists.txt
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@goblirsc , please do not delete this line. It is there to make sure that the cpp standard substitution we are doing in the next line works. I see that new gbl has default standard 17 ( https://gitlab.desy.de/millepede/general-broken-lines/-/blob/V04-00-00/cpp/CMakeLists.txt?ref_type=tags#L47) , so please add this line back and update the expected standard i.e.

grep -q 'CMAKE_CXX_STANDARD  *17' cpp/CMakeLists.txt

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added lines back and in both cased specified 17 as the standard to replace

-DCMAKE_VERBOSE_MAKEFILE=ON \
-DEIGEN3_INCLUDE_DIR=${EIGEN_ROOT}/include/eigen3 \
-DSUPPORT_ROOT=False \
-DCMAKE_CXX_FLAGS="$CMS_EIGEN_CXX_FLAGS %{selected_microarch}"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@goblirsc , please also add -DCMAKE_PREFIX_PATH="%{cmake_prefix_path}" in here so that we explicitly pass the install paths of eigen and mille here. Though I see in log that it says it Found Mille but no idea how it did that :-)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks - now done

mille.spec Outdated
Comment on lines 12 to 22
rm -rf build
mkdir build
cd build
cmake \
-DCMAKE_INSTALL_PREFIX=%{i} \
../
make

%install
cd build
make install PREFIX=%{i}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
rm -rf build
mkdir build
cd build
cmake \
-DCMAKE_INSTALL_PREFIX=%{i} \
../
make
%install
cd build
make install PREFIX=%{i}
rm -rf ../build
mkdir ../build
cd ../build
cmake \
DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=%{i} \
-DCMAKE_PREFIX_PATH="%{cmake_prefix_path}"
../%{n}-%{realversion}
make %{makeprocesses} VERBOSE=1
%install
cd ../build
make install PREFIX=%{i}

to avoid building in the source tree and also build in parallel & verbose modemake %{makeprocesses} VERBOSE=1

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks, done

millepede.spec Outdated
-DCMAKE_INSTALL_PREFIX=%{i} \
-DLAPACK_OPENBLAS=off \
../
make
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here, build outside the source tree i.e. try using ../build and also update cmake configuration to explicitly set CMAKE_PREFIX_PATH and CMAKE_BUILD_TYPE . Update make to run in parallel

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks - should be fixed in the latest commit

@smuzaffar
Copy link
Contributor

@goblirsc , couple of files also need relocation ( see https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b8b998/50978/external_checks/relocate/ ). so please update the specs to relocate these too

@@ -0,0 +1,25 @@
### RPM external mille V01-00-00
## INCLUDE cpp-standard
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@goblirsc , if we do not want to override the c++ standard for mille then there is no need to have this line. The above line only sets the default c++std for cms software stack and packages which are sensitive to c++std can make use of it. So if you need to build mille for default cms c++std then keep this line but then also add -DCMAKE_CXX_STANDARD=%{cms_cxx_standard} to cmake

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks, now passing the cms_cxx_standard to CMake

@cmsbuild
Copy link
Contributor

cmsbuild commented Feb 4, 2026

Pull request #10310 was updated.

@smuzaffar
Copy link
Contributor

please test with cms-sw/cmssw#49963

@cmsbuild
Copy link
Contributor

cmsbuild commented Feb 4, 2026

+1

Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b8b998/51090/summary.html
COMMIT: bafb704
CMSSW: CMSSW_16_1_X_2026-02-03-2300/el8_amd64_gcc13
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week1/cms-sw/cmsdist/10310/51090/install.sh to create a dev area with all the needed externals and cmssw changes.

The following merge commits were also included on top of IB + this PR after doing git cms-merge-topic:

You can see more details here:
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b8b998/51090/git-recent-commits.json
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b8b998/51090/git-merge-result

Comparison Summary

Summary:

  • You potentially removed 1 lines from the logs
  • ROOTFileChecks: Some differences in event products or their sizes found
  • Reco comparison results: 0 differences found in the comparisons
  • DQMHistoTests: Total files compared: 52
  • DQMHistoTests: Total histograms compared: 4028550
  • DQMHistoTests: Total failures: 0
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 4028530
  • DQMHistoTests: Total skipped: 20
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 132.62500000000009 KiB( 51 files compared)
  • DQMHistoSizes: changed ( 11634.0,... ): 5.305 KiB Physics/NanoAODDQM
  • Checked 222 log files, 193 edm output root files, 52 DQM output files
  • TriggerResults: no differences found

@smuzaffar
Copy link
Contributor

please test with cms-sw/cmssw#49963 for el9_amd64_gcc15

just to make sure it works for newer compilers and c++23 standard

@cmsbuild
Copy link
Contributor

cmsbuild commented Feb 4, 2026

-1

Failed Tests: Build
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b8b998/51097/summary.html
COMMIT: bafb704
CMSSW: CMSSW_16_1_X_2026-02-03-1100/el9_amd64_gcc15
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week1/cms-sw/cmsdist/10310/51097/install.sh to create a dev area with all the needed externals and cmssw changes.

The following merge commits were also included on top of IB + this PR after doing git cms-merge-topic:

You can see more details here:
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b8b998/51097/git-recent-commits.json
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b8b998/51097/git-merge-result

Failed Build

I found compilation warning when building: See details on the summary page.

  • Static analyzer reported errors, please check

@cmsbuild
Copy link
Contributor

cmsbuild commented Feb 4, 2026

REMINDER @mandrenguyen, @sextonkennedy, @ftenchini: This PR was tested with cms-sw/cmssw#49963, please check if they should be merged together

@goblirsc
Copy link
Contributor Author

goblirsc commented Feb 4, 2026

-1

Failed Tests: Build Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b8b998/51097/summary.html COMMIT: bafb704 CMSSW: CMSSW_16_1_X_2026-02-03-1100/el9_amd64_gcc15 User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week1/cms-sw/cmsdist/10310/51097/install.sh to create a dev area with all the needed externals and cmssw changes.

The following merge commits were also included on top of IB + this PR after doing git cms-merge-topic:

* @thomreis [ECAL GPU vs. CPU validation configuration changes cmssw#49965](https://github.com/cms-sw/cmssw/pull/49965)

* @rclark99 [Add per-PFCand plots to nanoDQM cmssw#49978](https://github.com/cms-sw/cmssw/pull/49978)

* @makortel [Make `IntrusiveAllocMonitor` re-entrant cmssw#49992](https://github.com/cms-sw/cmssw/pull/49992)

* @Dr15Jones [Added Fwd.h files to DataFormats/PatCandidates cmssw#49998](https://github.com/cms-sw/cmssw/pull/49998)

* @SegmentLinking [Fix typo in LST causing segfault  cmssw#50001](https://github.com/cms-sw/cmssw/pull/50001)

* @stahlleiton [Update MiniAOD conversions in Run3 UPC era cmssw#50006](https://github.com/cms-sw/cmssw/pull/50006)

* @cms-ngt-hlt [[NGT] add `hltESPMkFit` to `NGTScouting` menu cmssw#50008](https://github.com/cms-sw/cmssw/pull/50008)

You can see more details here: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b8b998/51097/git-recent-commits.json https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-b8b998/51097/git-merge-result

Failed Build

I found compilation warning when building: See details on the summary page.

* Static analyzer reported errors, please check

at a quick glance, there seem a huge amount of static analysis errors from unrelated packages - is the existing codebase expected to pass?
I couldn't find any warnings related to the changes from this PR (or the CMSSW one). But maybe I missed some in the list, please let me know :)

@smuzaffar
Copy link
Contributor

+externals

gcc15 static analyzer errors are not related to this change.

@cmsbuild
Copy link
Contributor

cmsbuild commented Feb 4, 2026

This pull request is fully signed and it will be integrated in one of the next IB/CMSSW_16_1_X/master IBs (tests are also fine). This pull request will now be reviewed by the release team before it's merged. @mandrenguyen, @sextonkennedy, @ftenchini (and backports should be raised in the release meeting by the corresponding L2)
Notice This PR was tested with additional Pull Request(s), please also merge them if necessary: cms-sw/cmssw#49963

@mandrenguyen
Copy link

+1

@cmsbuild cmsbuild merged commit cf4fe20 into cms-sw:IB/CMSSW_16_1_X/master Feb 5, 2026
10 of 11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants